﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DADOS.auxiliares
{
    public class metEntrevista
    {
        DB_PROAD banco = new DB_PROAD();

        private void FecharConexao(object banco)
        {
            ((DB_PROAD)banco).Connection.Close();
        }

        private void InicializarConexao(object banco)
        {
            ((DB_PROAD)banco).Connection.Open();
        }

        /// <summary>
        /// Incluir Entrevista Cuidador
        /// </summary>
        /// <param name="objEntrevista"></param>
        public void Incluir(TB_ENTREVISTA_CUIDADOR objEntrevista)
        {
            try
            {
                InicializarConexao(banco);
                banco.AddToTB_ENTREVISTA_CUIDADOR(objEntrevista);
                banco.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        public void Alterar(TB_ENTREVISTA_CUIDADOR objEntrevista)
        {
            try
            {
                InicializarConexao(banco);
                var objEntrevCuid =
                    banco.TB_ENTREVISTA_CUIDADOR.Where(
                        q => q.CO_ENTREVISTA_CUIDADOR == objEntrevista.CO_ENTREVISTA_CUIDADOR).FirstOrDefault();

                objEntrevCuid.NR_Q_1 = objEntrevista.NR_Q_1;
                objEntrevCuid.NR_Q_2 = objEntrevista.NR_Q_2;
                objEntrevCuid.NR_Q_3 = objEntrevista.NR_Q_3;
                objEntrevCuid.NR_Q_4 = objEntrevista.NR_Q_4;
                objEntrevCuid.NR_Q_5 = objEntrevista.NR_Q_5;
                objEntrevCuid.NR_Q_6 = objEntrevista.NR_Q_6;
                objEntrevCuid.NR_Q_6_QUEM = objEntrevista.NR_Q_6_QUEM;
                objEntrevCuid.NR_Q_7 = objEntrevista.NR_Q_7;
                objEntrevCuid.NR_Q_8 = objEntrevista.NR_Q_8;
                objEntrevCuid.NR_Q_9 = objEntrevista.NR_Q_9;
                objEntrevCuid.NR_Q_10 = objEntrevista.NR_Q_10;
                objEntrevCuid.NR_Q_11 = objEntrevista.NR_Q_11;
                objEntrevCuid.NR_Q_12 = objEntrevista.NR_Q_12;
                objEntrevCuid.NR_Q_13_A1 = objEntrevista.NR_Q_13_A1;
                objEntrevCuid.NR_Q_13_A2 = objEntrevista.NR_Q_13_A2;
                objEntrevCuid.NR_Q_13_A3 = objEntrevista.NR_Q_13_A3;
                objEntrevCuid.NR_Q_13_A4 = objEntrevista.NR_Q_13_A4;
                objEntrevCuid.NR_Q_13_A5 = objEntrevista.NR_Q_13_A5;
                objEntrevCuid.NR_Q_13_A6 = objEntrevista.NR_Q_13_A6;
                objEntrevCuid.NR_Q_13_A7 = objEntrevista.NR_Q_13_A7;
                objEntrevCuid.NR_Q_13_A8 = objEntrevista.NR_Q_13_A8;
                objEntrevCuid.NR_Q_14_A1 = objEntrevista.NR_Q_14_A1;
                objEntrevCuid.NR_Q_14_A2 = objEntrevista.NR_Q_14_A2;
                objEntrevCuid.NR_Q_14_A3 = objEntrevista.NR_Q_14_A3;
                objEntrevCuid.NR_Q_14_A4 = objEntrevista.NR_Q_14_A4;
                objEntrevCuid.NR_Q_15_A1 = objEntrevista.NR_Q_15_A1;
                objEntrevCuid.NR_Q_15_A2 = objEntrevista.NR_Q_15_A2;

                LogEntrevista(objEntrevCuid.CO_ENTREVISTA_CUIDADOR,objEntrevCuid.CO_PROFISSIONAL);

                banco.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        private void LogEntrevista(int codProf, int codEntrev)
        {
            var objLogEntrev = new TB_LOG_ENTREVISTA_CUIDADOR();
            objLogEntrev.CO_ENTREVISTA_CUIDADOR = codEntrev;
            objLogEntrev.CO_PROFISSIONAL = codProf;
            objLogEntrev.DT_ATUALIZACAO = DateTime.Now;
            try
            {
                banco.AddToTB_LOG_ENTREVISTA_CUIDADOR(objLogEntrev);
                banco.SaveChanges();
            }
            catch (Exception)
            {

                throw;
            }
           
        }

        public int TemEntrevista(int codCuid)
        {
            try
            {
                InicializarConexao(banco);
                var objCuid =
                    banco.TB_ENTREVISTA_CUIDADOR.Where(q => q.CO_CUIDADOR == codCuid).FirstOrDefault();

                if (objCuid != null)
                {
                    return objCuid.CO_ENTREVISTA_CUIDADOR;
                }else
                {
                    return 0;
                }
                
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }  
        }

        public TB_ENTREVISTA_CUIDADOR GetEntrevistaByCod(int codEntrevCuid)
        {
            try
            {
                InicializarConexao(banco);
                var objEntrevCuid =
                    banco.TB_ENTREVISTA_CUIDADOR.Where(q => q.CO_ENTREVISTA_CUIDADOR == codEntrevCuid).FirstOrDefault();
                return objEntrevCuid;
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }
    }

}
